Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add fixes for block-lang rule #844

Merged
merged 15 commits into from
Dec 30, 2024

Conversation

Winter
Copy link
Contributor

@Winter Winter commented Aug 26, 2024

I wanted eslint to automatically fix script/style errors from the block-lang rule.

The lang fixes will only apply when a script/style config value contains only a single, non-null value.

<!-- svelte/block-lang: ["error", {"enforceScriptPresent": true}] -->
<!-- Error: The <script> block should be present and its lang attribute should be omitted -->

<!-- fixes into at the top of the file --> 
<script>
</script>
<!-- svelte/block-lang: ["error", {"enforceScriptPresent": true, "script": "ts"}] -->
<!-- Error: The <script> block should be present and its lang attribute should be "ts" -->

<!-- fixes into at the top of the file --> 
<script lang="ts">
</script>
<!-- svelte/block-lang: ["error", {"script": "ts"}] -->
<!-- Error: The lang attribute of the <script> block should be "ts"-->

<script>
</script>
<!-- fixes into --> 
<script lang="ts">
</script>
<!-- svelte/block-lang: ["error", {"script": "ts"}] -->
<!-- Error: The lang attribute of the <script> block should be "ts"-->

<script context="module">
</script>
<!-- fixes into --> 
<script lang="ts" context="module">
</script>
<!-- svelte/block-lang: ["error", {"script": "ts"}] -->
<!-- Error: The lang attribute of the <script> block should be "ts" -->

<script module>
</script>
<!-- fixes into --> 
<script lang="ts" module>
</script>

The same logic applies to the style tag except will create at the bottom of the file

Copy link

changeset-bot bot commented Aug 26, 2024

🦋 Changeset detected

Latest commit: 6dba947

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
eslint-plugin-svelte Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Member

@ota-meshi ota-meshi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this PR!

I think changing the lang attribute may break the component.
Auto-fix needs to be safe, so could you change it to use the suggestions API instead?
If multiple langs ​​are allowed, we could show multiple suggestions.

Copy link

pkg-pr-new bot commented Dec 30, 2024

Open in Stackblitz

npm i https://pkg.pr.new/eslint-plugin-svelte@844

commit: 6dba947

output: |
<script lang="javascript"></script>

<style lang="javascript"></style>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is wrong. I will fix this but I need to go outside now.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upon carefully reviewing the test cases, this is correct.😇

@baseballyama baseballyama merged commit 2bbd049 into sveltejs:main Dec 30, 2024
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants